package com.berchen.Stream;

import org.junit.Test;

import java.time.Duration;
import java.time.Instant;
import java.util.stream.LongStream;

/**
 * 并行流：就是把一个内容分成多个数据块，并用不同的线程分别处理每一个数据块的流。
 * Java8 中对并行流进行了优化，我们可以通过parallel()和sequential()在并行流与顺序流之间进行切换。
 */
public class TestParallel {
    
    @Test
    public void test1() {

        Instant start = Instant.now();  // 开始时间

        LongStream.rangeClosed(0,100000000000L) // 11395 ms
                .parallel()             // 将串行流变成并行流
                .reduce(0,Long::sum);


        Instant end = Instant.now();    // 结束时间
        System.out.println(Duration.between(start,end).toMillis()); // 获取两个时间的毫秒值
    }
}
